[Alexa] SkillのEndpointは、Alias付きのARNがおすすめです。
1 はじめに
Amazon Alexa(以下、Alexa)のスキルをAWS Lambda(以下、Lambda)で作成した場合、Endpointには、ARN(Amazon Resource Name)を指定します。
今回は、このARNに、エイリアス名を使用すると、少しだけ便利になる(かも知れない)という紹介をさせて下さい。
私が、便利になると考えるのは以下の2点です。
- バージョン(動作)が固定できる
- 次期バージョンの開発が容易
注:スキルのEndpoint指定にエイリアスを指定する事に関しては、現時点で、どのドキュメントにも触れられていないようです。あくまで、私の個人的な見解であることを、あらかじめご了承ください。
2 エイリアス指定の方法
エイリアス付きARNをスキルのEndpointに設定する手順は以下の通りです。
- 一例ですが、publishされたバージョンが、1〜4まであり、Version 4 に v1というエイリアスが設定されているとします。
- ここで、このEndpointに設定したいエイリアスを選択します。
- エイリアスが選択された状態で、TriggersにAlexa Skills Kitを追加すると、生成されるARNは、最後に:v1というようなエイリアス名が付いたものになります。
-
このARNをスキルのEndpointに指定します。
3 バージョン(動作)が固定できる
お勧めする利用の1つは、バージョン(動作)が固定できることです。
もし、エイリアスを付けないARNをEndpointに指定した場合、$LATESTを設定した事になり、Lambdaのコードが更新されると、スキルの動作に影響します。
これは、審査が終わってLiveになってからも同じです。
4 次期バージョンの開発が容易
お勧めする2つ目の理由は、次期バージョンの作業が容易になる事です。
スキルは、審査に提出した時点で、Endpointを変更できなくなります。そして、公開(Live)となった時点で、図のように次期バージョンの作業が可能になります。
次期バージョンの設定では、Endpointも自由に設定できますので、こちらは、公開したLambdaと同じものでエイリアスのないARNを設定します。
こうする事で、公開中のスキルは、エイリアスで固定されたバージョンで動作し、開発では、最新のLambda($LATEST)で動作する環境が作れます。
次期バージョンの設定は、Invacation Nameが同じになっているため(変更できません)、開発者のアカウントで使用すると、$LATESTのLambdaが呼ばれ、一般のユーザーからはエイリアス指定したLambdaが呼ばれる事になります。
次期バージョンの開発が終了した時点で、また、エイリアス「例えば :v2」を設定して、公開申請すれば、再び同じ環境が構築できます。
5 最後に
今回は、Endpointに指定するARNは、エイリアス付きが、お勧めであるという紹介をさせて頂きました。
誠に恐縮ですが、こちらは、あくまで私の個人的意見です。もし、更にお勧めな方法や、今回紹介した内容に弊害があるというような場合は、是非、教えてやってください。
6 参考リンク
Submitting an Alexa Skill for Certification
AWS Lambda 関数のバージョニングとエイリアス
Alexa Skills Kit for Node.js はじめの一歩
Alexa Skills Kit for Node.js 次の一歩(DynamoDB)